<?php
if(isset($_SESSION) && ($GLOBALS['USER']['level'] >= 2 || $GLOBALS['USER']['admin'])){

   if(isset($_POST['SendFormRechTax']) && !($_POST['cherche_plante'] == "" && $_POST['cherche_theme'] == "" && $_POST['cherche_event'] == "")) {
         
         boutonRetour("index.php?p=requetes/recherche_taxon"); // appel à la fonction boutonRetour() définie dans fonctions.php
         
         // requête pour obtenir les taxons correspondant aux critères
         $query_cherche_taxon = "SELECT DISTINCT t.CODETAXON AS id, a.ABREVIATIONAUTEUR AS auteur, f.NOMFAMILLE AS famille, sf.NOMSOUSFAMILLE AS sous_famille, g.NOMGENRE AS genre, sg.NOMSOUSGENRE AS sous_genre, e.NOMESPECE AS espece, se.NOMSOUSESPECE AS sous_espece, v.NOMVARIETE AS variete ";
         $query_cherche_taxon .= "FROM taxon t ";
         $query_cherche_taxon .= "INNER JOIN classification c ON c.CODECLASSIFICATION = t.CODECLASSIFICATION ";
         $query_cherche_taxon .= "LEFT JOIN est_de_famille l1 INNER JOIN famille f ON f.CODEFAMILLE = l1.CODEFAMILLE ON l1.CODETAXON = t.CODETAXON AND l1.CODECLASSIFICATION = t.CODECLASSIFICATION ";
         $query_cherche_taxon .= "LEFT JOIN est_de_sous_famille l11 INNER JOIN sous_famille sf ON sf.CODESOUSFAMILLE = l11.CODESOUSFAMILLE ON l11.CODETAXON = t.CODETAXON AND l11.CODECLASSIFICATION = t.CODECLASSIFICATION ";
         $query_cherche_taxon .= "LEFT JOIN appartient_a_genre l2 INNER JOIN genre g ON g.CODEGENRE = l2.CODEGENRE ON l2.CODETAXON = t.CODETAXON AND l2.CODECLASSIFICATION = t.CODECLASSIFICATION ";
         $query_cherche_taxon .= "LEFT JOIN appartient_a_sous_genre l22 INNER JOIN sous_genre sg ON sg.CODESOUSGENRE = l22.CODESOUSGENRE ON l22.CODETAXON = t.CODETAXON AND l22.CODECLASSIFICATION = t.CODECLASSIFICATION ";
         $query_cherche_taxon .= "LEFT JOIN est_de_espece l3 INNER JOIN espece e ON e.CODEESPECE = l3.CODEESPECE ON l3.CODETAXON = t.CODETAXON AND l3.CODECLASSIFICATION = t.CODECLASSIFICATION ";
         $query_cherche_taxon .= "LEFT JOIN est_de_sous_espece l33 INNER JOIN sous_espece se ON se.CODESOUSESPECE = l33.CODESOUSESPECE ON l33.CODETAXON = t.CODETAXON AND l3.CODECLASSIFICATION = t.CODECLASSIFICATION ";
         $query_cherche_taxon .= "LEFT JOIN a_comme_variete l4 INNER JOIN variete v ON v.CODEVARIETE = l4.CODEVARIETE ON l4.CODETAXON = t.CODETAXON AND l4.CODECLASSIFICATION = t.CODECLASSIFICATION ";
         $query_cherche_taxon .= "LEFT JOIN auteur a ON (v.CODEAUTEUR = a.CODEAUTEUR OR (l33.CODETAXON NOT IN (SELECT CODETAXON FROM a_comme_variete) AND se.CODEAUTEUR = a.CODEAUTEUR) OR (l3.CODETAXON NOT IN (SELECT CODETAXON FROM a_comme_variete) AND l3.CODETAXON NOT IN (SELECT CODETAXON FROM est_de_sous_espece) AND e.CODEAUTEUR = a.CODEAUTEUR)) ";
   
         $query_cherche_taxon_where = "WHERE 1 ";
         
         // si la thématique est renseignée, on affine la requête
         if($_POST['cherche_theme'] != ""){
            
            $query_cherche_taxon .= "INNER JOIN a_pour_support aps INNER JOIN reference ref INNER JOIN thematique th ON t.CODETAXON = aps.CODETAXON AND ref.CODEREFERENCE=aps.CODEREFERENCE AND ref.CODETHEMATIQUE=th.CODETHEMATIQUE ";
            $query_cherche_taxon_where .= "AND th.NOMTHEMATIQUE = ".mysqlString($_POST['cherche_theme'])." ";
            
         }
         
         // si l'action est renseignée, on affine la requête
         // on prend en compte le fait qu'il y ait une thematique
         if($_POST['cherche_event'] != ""){
            
            if($_POST['cherche_theme'] != ""){
               
               $query_cherche_taxon .= "INNER JOIN action_a_pour_theme apt INNER JOIN action ac ON apt.CODETHEMATIQUE=th.CODETHEMATIQUE AND ac.CODEACTION = apt.CODEACTION ";
               $query_cherche_taxon_where .= "AND ac.NOMACTION = ".mysqlString($_POST['cherche_event'])." ";
               
            } else {
             
               $query_cherche_taxon .= "INNER JOIN a_pour_support aps INNER JOIN reference ref INNER JOIN thematique th INNER JOIN action_a_pour_theme apt INNER JOIN action ac ON t.CODETAXON = aps.CODETAXON AND ref.CODEREFERENCE=aps.CODEREFERENCE AND ref.CODETHEMATIQUE=th.CODETHEMATIQUE AND apt.CODETHEMATIQUE=th.CODETHEMATIQUE AND ac.CODEACTION = apt.CODEACTION ";
               $query_cherche_taxon_where .= "AND ac.NOMACTION = ".mysqlString($_POST['cherche_event'])." ";
             
            }
         }
         
         
         // si un nom
   		if($_POST['cherche_plante'] != ""){
            
            $query_cherche_taxon_where .= "AND CONCAT(g.NOMGENRE,\" \", e.NOMESPECE) = ".mysqlString($_POST['cherche_plante'])." ";
            
         }
         
         $result_cherche_taxon = mysql_query($query_cherche_taxon.$query_cherche_taxon_where, $connexion) or logError("RECHERCHE TAXONS-".$query_cherche_taxon."-".mysql_error());
         
         
         if (mysql_num_rows($result_cherche_taxon) == 0) {
            afficherStatut("La recherche n'a donné aucun résultat.", 3);
            redirection("requetes/recherche_taxon",2);
         } else {
         
            echo "<h2>Resultat de la recherche</h2>";
            echo "<div style=\"width: 500px; margin: auto;\">";
            
            while($tab_cherche_taxon = mysql_fetch_assoc($result_cherche_taxon)){
                  echo "<li><a href=\"popup.php?p=gestion/plante_affiche_popup&taxId=".$tab_cherche_taxon['id']."\" onclick=\"popup(this.href, 500, 500); return false;\">";
                  echo $tab_cherche_taxon['famille']." ".$tab_cherche_taxon['sous_famille']." ".$tab_cherche_taxon['genre']." ".$tab_cherche_taxon['sous_genre']." ".$tab_cherche_taxon['espece']." ".$tab_cherche_taxon['sous_espece']." ".$tab_cherche_taxon['variete']." (".$tab_cherche_taxon['auteur'].")";
                  echo "</a></li><br />";
            }
            
            echo "</ul></div>";
          
         }
         
      } else {
      
         afficherStatut("veuillez renseigner au moins un des champs proposé.", 3);
         redirection("requetes/recherche_taxon",2);
      
      }
   } else {
		if(isset($_SESSION)){
			if(!isset($_SESSION['user_id'])){ // si l'utilisateur n'est pas connecté
				include("pages/connexion.php");
			}else{ // si l'utilisateur est connecté et qu'il n'a pas accès à la page, c'est qu'il n'a pas le droit d'utilisation nécessaire
				include("pages/401.htm");
			}
		}
	}
   
?>